package com.hong.day03.activiti;

import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.repository.ProcessDefinition;
import org.activiti.engine.repository.ProcessDefinitionQuery;

import java.util.List;

/**
 * @Auther: csh
 * @Date: 2019/11/20 17:01
 * @Description:查询流程定义信息
 * `act_ge_bytearray`
 * `act_re_deployment`
 * `act_re_procdef`
 */
public class QueryProcessDefinition {

    public static void main(String[] args) {
        //1.得到processEngine对象
        ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
        //2.创建RepositoryService对象
        RepositoryService repositoryService = processEngine.getRepositoryService();
        //3.得到ProcessDefinitionQuery对象
        ProcessDefinitionQuery processDefinitionQuery = repositoryService.createProcessDefinitionQuery();
        //4.设置条件 并查询出当前的所有流程定义 查询条件:流程定义的key=myProcess_1
        //orderByProcessDefinitionVersion 设置排序方式 根据流程定义的版本号进行排序
        List <ProcessDefinition> processDefinitions = processDefinitionQuery.processDefinitionKey("myProcess_1")
                .orderByProcessDefinitionVersion()
                .desc()
                .list();
        //5.输出流程定义信息
        for (ProcessDefinition processDefinition : processDefinitions) {
            System.out.println("流程定义的Id"+processDefinition.getId());
            System.out.println("流程定义的名称"+processDefinition.getName());
            System.out.println("流程定义的key"+processDefinition.getKey());
            System.out.println("流程定义的版本号"+processDefinition.getVersion());
            System.out.println("流程部署的ID"+processDefinition.getDeploymentId());
        }
    }
}
